home *** CD-ROM | disk | FTP | other *** search
/ HTBasic 9.3 / HTBasic 9.3.iso / LgcyPlus / disk2 / SYSTDIS._ / SYSTDIS.
Encoding:
Text File  |  2001-03-02  |  5.0 KB  |  147 lines

  1. 10    ! *****************************************************
  2. 20    ! Example: SYSTEM Widget Event Disabling
  3. 30    !
  4. 40    ! This program builds a set of widgets using the
  5. 50    ! SYSTEM widget. You can enable/disable ten events.
  6. 60    ! In addition, a status log lists all events that
  7. 70    ! occur, such as moving the SLIDER bar, etc.
  8. 80    !
  9. 90    !                   NOTE
  10. 100   !
  11. 110   ! You may need to maximize the display to see all
  12. 120   ! of the widgets.
  13. 130   !
  14. 140   ! *****************************************************
  15. 150   !
  16. 160   DIM Sys_menu$(0:13)[80],Event$(1:2)[80],Panel$[80]
  17. 170   DIM Printer$[80],Slider$[80],Meter$[80]
  18. 180   INTEGER I,Space,Sys_event,Cur_event,Events
  19. 190   DATA ACTIVATED, ALARM, CHANGED, DONE, INVALID NUMBER
  20. 200   DATA KEYSTROKE, REPAINT, RESIZED, RETURN, SELECTION, *
  21. 210   Events=0
  22. 220   LOOP
  23. 230     Sys_menu$(Events)="DISABLE "
  24. 240     READ Sys_menu$(Events)[9]
  25. 250   EXIT IF Sys_menu$(Events)[9]="*"
  26. 260     Events=Events+1
  27. 270   END LOOP
  28. 280   Sys_menu$(Events)="Quit "
  29. 290   REDIM Sys_menu$(0:Events)
  30. 300   Panel$="Panel"
  31. 310   Printer$=Panel$&"/Printer"
  32. 320   Slider$=Panel$&"/Slider"
  33. 330   Meter$=Panel$&"/Meter"
  34. 340   !
  35. 350   ASSIGN @Syst TO WIDGET "SYSTEM"
  36. 360   CONTROL @Syst;SET ("*LOAD":"HELP_EX/SBEVNTSA.SCR","*QUEUE EVENTS":1)
  37. 370   CONTROL @Syst;SET ("*NAME":"Panel","SYSTEM MENU":Sys_menu$(*))
  38. 380   CONTROL @Syst;SET ("SIZE CONTROL":"RESIZE CHILDREN")
  39. 390   ON EVENT @Syst,"SYSTEM MENU" GOSUB Sys_menu
  40. 400   ON Events GOTO E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12
  41. 410   !
  42. 420 E12: ON EVENT @Syst,Sys_menu$(12)[POS(Sys_menu$(12)," ")+1] GOSUB Event_12
  43. 430 E11: ON EVENT @Syst,Sys_menu$(11)[POS(Sys_menu$(11)," ")+1] GOSUB Event_11
  44. 440 E10: ON EVENT @Syst,Sys_menu$(10)[POS(Sys_menu$(10)," ")+1] GOSUB Event_10
  45. 450 E9: ON EVENT @Syst,Sys_menu$(9)[POS(Sys_menu$(9)," ")+1] GOSUB Event_9
  46. 460 E8: ON EVENT @Syst,Sys_menu$(8)[POS(Sys_menu$(8)," ")+1] GOSUB Event_8
  47. 470 E7: ON EVENT @Syst,Sys_menu$(7)[POS(Sys_menu$(7)," ")+1] GOSUB Event_7
  48. 480 E6: ON EVENT @Syst,Sys_menu$(6)[POS(Sys_menu$(6)," ")+1] GOSUB Event_6
  49. 490 E5: ON EVENT @Syst,Sys_menu$(5)[POS(Sys_menu$(5)," ")+1] GOSUB Event_5
  50. 500 E4: ON EVENT @Syst,Sys_menu$(4)[POS(Sys_menu$(4)," ")+1] GOSUB Event_4
  51. 510 E3: ON EVENT @Syst,Sys_menu$(3)[POS(Sys_menu$(3)," ")+1] GOSUB Event_3
  52. 520 E2: ON EVENT @Syst,Sys_menu$(2)[POS(Sys_menu$(2)," ")+1] GOSUB Event_2
  53. 530 E1: ON EVENT @Syst,Sys_menu$(1)[POS(Sys_menu$(1)," ")+1] GOSUB Event_1
  54. 540 E0: ON EVENT @Syst,Sys_menu$(0)[POS(Sys_menu$(0)," ")+1] GOSUB Event_0
  55. 550   !
  56. 560   LOOP
  57. 570     WAIT FOR EVENT
  58. 580   END LOOP
  59. 590   !
  60. 600 Event_0: Cur_event=0
  61. 610   GOSUB Event_handler
  62. 620   RETURN
  63. 630   !
  64. 640 Event_1: Cur_event=1
  65. 650   GOSUB Event_handler
  66. 660   RETURN
  67. 670   !
  68. 680 Event_2: Cur_event=2
  69. 690   GOSUB Event_handler
  70. 700   RETURN
  71. 710   !
  72. 720 Event_3: Cur_event=3
  73. 730   GOSUB Event_handler
  74. 740   RETURN
  75. 750   !
  76. 760 Event_4: Cur_event=4
  77. 770   GOSUB Event_handler
  78. 780   RETURN
  79. 790   !
  80. 800 Event_5: Cur_event=5
  81. 810   GOSUB Event_handler
  82. 820   RETURN
  83. 830   !
  84. 840 Event_6: Cur_event=6
  85. 850   GOSUB Event_handler
  86. 860   RETURN
  87. 870   !
  88. 880 Event_7: Cur_event=7
  89. 890   GOSUB Event_handler
  90. 900   RETURN
  91. 910   !
  92. 920 Event_8: Cur_event=8
  93. 930   GOSUB Event_handler
  94. 940   RETURN
  95. 950   !
  96. 960 Event_9: Cur_event=9
  97. 970   GOSUB Event_handler
  98. 980   RETURN
  99. 990   !
  100. 1000 Event_10: Cur_event=10
  101. 1010  GOSUB Event_handler
  102. 1020  RETURN
  103. 1030  !
  104. 1040 Event_11: Cur_event=11
  105. 1050  GOSUB Event_handler
  106. 1060  RETURN
  107. 1070  !
  108. 1080 Event_12: Cur_event=12
  109. 1090  GOSUB Event_handler
  110. 1100  RETURN
  111. 1110  !
  112. 1120 Event_handler:!
  113. 1130  CONTROL @Syst;SET ("*EVENT NAME FILTER":Sys_menu$(Cur_event)[POS(Sys_menu$(Cur_event)," ")+1])
  114. 1140  LOOP
  115. 1150    STATUS @Syst;RETURN ("*QUEUED EVENT":Event$(*))
  116. 1160  EXIT IF NOT LEN(Event$(2))
  117. 1170    IF Event$(1)=Slider$ THEN
  118. 1180      STATUS @Syst;RETURN ("*NAME":Slider$,"VALUE":Value)
  119. 1190      CONTROL @Syst;SET ("*NAME":Meter$,"VALUE":Value)
  120. 1200    END IF
  121. 1210    CONTROL @Syst;SET ("*NAME":Printer$,"APPEND TEXT":Event$(1)&":"&Event$(2))
  122. 1220  END LOOP
  123. 1230  CONTROL @Syst;SET ("*EVENT NAME FILTER":"")
  124. 1240  RETURN
  125. 1250   !
  126. 1260 Sys_menu:!
  127. 1270  STATUS @Syst;RETURN ("*NAME":Panel$,"SYSTEM MENU EVENT":Sys_event)
  128. 1280  Space=POS(Sys_menu$(Sys_event)," ")
  129. 1290  SELECT Sys_menu$(Sys_event)[1,Space-1]
  130. 1300  CASE "ENABLE"
  131. 1310    ENABLE EVENT @Syst,Sys_menu$(Sys_event)[Space+1]
  132. 1320    Action$="DISABLE"
  133. 1330  CASE "DISABLE"
  134. 1340    DISABLE EVENT @Syst,Sys_menu$(Sys_event)[Space+1]
  135. 1350    Action$="ENABLE"
  136. 1360  CASE "Quit"
  137. 1370    STOP
  138. 1380  END SELECT
  139. 1390  CONTROL @Syst;SET ("*NAME":Printer$,"APPEND TEXT":Sys_menu$(Sys_event))
  140. 1400  Sys_menu$(Sys_event)=Action$&Sys_menu$(Sys_event)[Space]
  141. 1410  CONTROL @Syst;SET ("*NAME":"Panel","SYSTEM MENU":Sys_menu$(*))
  142. 1420  CONTROL @Syst;SET ("*EVENT NAME FILTER":"SYSTEM MENU")
  143. 1430  STATUS @Syst;RETURN ("*FLUSH QUEUED EVENTS":Events)
  144. 1440  CONTROL @Syst;SET ("*EVENT NAME FILTER":"")
  145. 1450  RETURN
  146. 1460  END
  147.